package kyssion.leetcode.num151_200;

public class code153_寻找旋转排序数组中的最小值 {
    public static void main(String[] args) {
        System.out.println(new code153_寻找旋转排序数组中的最小值().findMin(
                new  int[]{
                        9,1
                }
        ));
    }

    /**
     * 这种题木每次做的都有问题, 注意边界的问题
     * @param nums
     * @return
     */
    public int findMin(int[] nums) {
        if(nums==null||nums.length==0){
            return 0;
        }
        if(nums.length==1){
            return nums[0];
        }
        int start = 0;
        int end = nums.length - 1;
        int midle = 0;
        while (true) {
            if(start+1==end){
                return Math.min(nums[start],nums[end]);
            }
            midle = (start + end) >> 1;
            if (nums[midle] < nums[end]) {
                end = midle;
            } else {
                start = midle;
            }
        }
    }
}
